{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "59e83d7d",
   "metadata": {},
   "outputs": [],
   "source": [
    "import random as rnd\n",
    "import numpy as np\n",
    "import scipy.stats as stats\n",
    "import math\n",
    "from matplotlib import pyplot as plt\n",
    "import copy\n",
    "from scipy.spatial.distance import euclidean \n",
    "from scipy.stats import multivariate_normal\n",
    "import  random"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b51d74f9",
   "metadata": {},
   "source": [
    "# фильтр Рао - Блеквуда\n",
    "Рассматривается упрощенная модель отслеживания диполя ,изложенная в данном источнике:\n",
    " E. Somersalo, A. Voutilainen, J.P. Kaipio. Non-stationary magnetoencephalography\n",
    "by Bayesian filtering of dipole models. Inverse Probl., 19 (2003) 1047-1063. doi:\n",
    "10.1088/0266-5611/19/5/304\n",
    "Для восстановления координат диполя, а также магнитного дипольного момента используется фильтр частиц основанный на теореме Рао -Блэкуэлла (RBPF – Rao-Blackwellized particle filters)\n",
    "$$ p(x_k|x_{k-1},u_{k-1}) = N(x_k|A_{k-1}(u_{k-1})x_{k-1},Q_k(u_{k-1})) $$\n",
    "$$ p(y_k,x_k,u_k) = N(y_k|H_k(u_k)x_k,R_k(u_k)) $$\n",
    "$$ p(u_k,u_{k-1}) = любая форма $$\n",
    "$$ p(u_k,x_k,y_1,..y_k) = p(u_k|y_1..y_k) p(x_k|u_k,y_1...y_k) $$\n",
    "1-е фильтр частиц, второе фильтр Калмана"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "00e62c9b",
   "metadata": {},
   "outputs": [],
   "source": [
    "# расстояние системы сенсоров до плоскости\n",
    "h = 1\n",
    "#Магнитная постоянная\n",
    "mu0 = 1 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "11c4a9b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Плоскость движения\n",
    "r  = np.array([\n",
    "  [2,2,h],\n",
    "  [-2,-2,h],\n",
    "  [2,-2,h],\n",
    "  [-2,2,h]\n",
    "])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4c4dfadd",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Число частиц\n",
    "N = 50\n",
    "# Число показаний\n",
    "M = 300\n",
    "lmbda = 0.1\n",
    "delta = 0.01\n",
    "# размер вектора состояний\n",
    "n = 4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "6cc624e4",
   "metadata": {},
   "outputs": [],
   "source": [
    "L = 72\n",
    "r = []\n",
    "for i in range(L//2):\n",
    "    r.append([4*np.cos(2*np.pi*i/(L//2)), 4*np.sin(2*np.pi*i/(L//2))])\n",
    "for i in  range(L//2): \n",
    "    r.append([3*np.cos(2*np.pi*i/(L//2)), 3*np.sin(2*np.pi*i/(L//2))])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5bd86653",
   "metadata": {},
   "outputs": [],
   "source": [
    "#  Генерация исходной матрицы ковариации\n",
    "def gen_cov_matrix(sz):\n",
    "    B =  np.array(np.zeros((sz,sz)))\n",
    "    for i in range(0,sz):\n",
    "        for j in range(0,i+1):\n",
    "            B[i][j] = np.random.uniform(0,1);\n",
    "    G  = B.dot(B.transpose())\n",
    "    return G"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "6a31ff1a",
   "metadata": {},
   "outputs": [],
   "source": [
    "G = np.array([[0.0] * ( L)  for i in range(L)])\n",
    "for i in range(L):\n",
    "    G[i][i] = 0.001"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "552731f8",
   "metadata": {},
   "source": [
    "Генерация координат и показаний датчиков"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "d245a489",
   "metadata": {},
   "outputs": [],
   "source": [
    "X =[]\n",
    "my_r = 3.5\n",
    "X.append([my_r,0.0,0.0,1.0])\n",
    "phi =0 \n",
    "delta_phi = 0.02\n",
    "x = [0.0,0.0,0.0,0.0]\n",
    "for i in range(0,M - 1):\n",
    "    phi += delta_phi\n",
    "    x = X[-1].copy()\n",
    "    x[0] = my_r  * math.cos(phi)\n",
    "    x[1] = my_r *  math.sin(phi)\n",
    "    k = np.random.multivariate_normal(np.zeros(2),np.array([[delta**2,0.0],[0.0,delta**2]]))\n",
    "    x[2] += k[0]\n",
    "    x[3] += k[1]\n",
    "    X.append(x)\n",
    "#print(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a3b57b8c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f5736b0d880>]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [a[0] for a in X]\n",
    "y = [a[1] for a in X]\n",
    "fig1 = plt.figure(1)\n",
    "axes1 = fig1.subplots(1, 1)\n",
    "axes1.plot([j[0] for j in r], [j[1] for j in r], 'o', color='black',ms=1);\n",
    "axes1.plot(x, y,label='parametric curve')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "4c61d4d7",
   "metadata": {},
   "outputs": [],
   "source": [
    "#Формула компоненты вектора магнитной индукции\n",
    "def b_func (x,j):\n",
    "#    print(x);\n",
    "    p = np.array([x[0], x[1]])\n",
    "    q = np.array([x[2], x[3]])\n",
    "    v = r[j] - p\n",
    "    len = np.sqrt(v[0]**2+v[1]**2 +  h**2)\n",
    "    coord_z = q[0]*v[1] - v[0]*q[1]\n",
    "    res = mu0/(4*np.pi)*(coord_z)/len**3\n",
    "    return res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "1d5f7ec5",
   "metadata": {},
   "outputs": [],
   "source": [
    "def b(x):\n",
    "    V = []\n",
    "    for i in  range(L):\n",
    "        V.append(b_func(x,i))\n",
    "    return V"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "cc2546cb",
   "metadata": {},
   "outputs": [],
   "source": [
    "Y = []\n",
    "for i in range(0,len(X)):\n",
    "    Y.append(b(X[i]) + np.random.multivariate_normal(np.zeros((L)), G, 1)[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "93d43b58",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f28917ad5b0>]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# График изменения вектора магнитной индукции\n",
    "x = [a[2] for a in X]\n",
    "y = [a[3] for a in X]\n",
    "\n",
    "fig2 = plt.figure(1)\n",
    "axes1 = fig2.subplots(1, 1)\n",
    "axes1.plot(x, y,label='parametric curve')\n",
    "      "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "ce545f6f",
   "metadata": {},
   "outputs": [],
   "source": [
    "mans = []\n",
    "Pans = []\n",
    "mans.append([my_r,0.0,0.0,1.0])\n",
    "Pans.append([[1.0,0.0,0.0,0.0],[0.0,1.0,0.0,0.0],[0.0,0.0,1.0,0.0],[0.0,0.0,0.0,1.0]])\n",
    "w  = np.array([1/N] * N)\n",
    "u  = np.array([[my_r,0.0] for i in range(N)])\n",
    "m_ = np.array([[my_r,0.0] for i in range(N)])\n",
    "p_ = np.array([[[1.0,0.0],[0.0,1.0]] for i in range(N)])\n",
    "m  = np.array([[my_r,0.0] for i in range(N)])\n",
    "p  = np.array([[[1.0,0.0],[0.0,1.0]] for i in range(N)])\n",
    "A  = np.array([[1.0,0.0],[0.0,1.0]])\n",
    "Qp = np.array([[lmbda**2,0],[0,lmbda**2]])\n",
    "Qq = np.array([[delta**2,0],[0,delta**2]])\n",
    "H = np.array([[0.0,0.0] for i in range(L)])\n",
    "R = np.array([[0.0] * ( L)  for i in range(L)])\n",
    "for i in range(L):\n",
    "    R[i][i] = 0.001\n",
    "for i in range(len(Y)):\n",
    "    # Прогноз\n",
    "    t = [0.0,0.0,0.0,0.0]\n",
    "    for j in range(N):\n",
    "        m_[j] = A.dot(m[j])\n",
    "        p_[j] = A.dot(p[j].dot(A.transpose())) + Qq\n",
    "    # Генерация частиц\n",
    "        u[j] +=  np.random.multivariate_normal(np.zeros((2)), Qp, 1)[0]\n",
    "    # Построение матрицы H:\n",
    "        for k in range(L):\n",
    "            z = r[k] - u[j]\n",
    "            lenn = math.sqrt(z[0]**2 + z[1]**2 +  h**2)\n",
    "            z = z / (lenn**3) * mu0 / (4*math.pi)\n",
    "            H[k] = np.array([z[1],-z[0]])\n",
    "    #Построение матрицы S\n",
    "        S = H.dot(p_[j].dot(H.transpose())) + R\n",
    "     # Рассчитывание веса частиц\n",
    "        var = multivariate_normal(mean= H.dot(m_[j]), cov = S)\n",
    "        w[j] = var.pdf(Y[i])\n",
    "    #Коррекция\n",
    "        K = p_[j].dot(H.transpose().dot(np.linalg.inv(S)))\n",
    "        v = np.array(Y[i]) - np.array(H.dot(m_[j]))\n",
    "        v = np.dot(K , v.transpose())\n",
    "        v = v.tolist();\n",
    "        m[j] = m_[j] + v\n",
    "        p[j] =  p_[j]   - np.dot(np.dot(K ,S),K.transpose())\n",
    "    # Нормировка\n",
    "    s = sum(w)\n",
    "    w /= s \n",
    "    for j in range(N):\n",
    "        t[0] += w[j] * u[j][0]\n",
    "        t[1] += w[j] * u[j][1]\n",
    "        t[2] += w[j] * m[j][0]\n",
    "        t[3] += w[j] * m[j][1]\n",
    "    # ресемплинг\n",
    "    p_samples = copy.deepcopy(p)\n",
    "    m_samples = copy.deepcopy(m)\n",
    "    u_samples = copy.deepcopy(u)\n",
    "    w_indices = [i for i in range(len(w))]\n",
    "    w_dist = stats.rv_discrete(values=(w_indices, w))\n",
    "    for j in range(N):\n",
    "        resample_index = w_dist.rvs()\n",
    "        m[j] = m_samples[resample_index]\n",
    "        p[j] = p_samples[resample_index]\n",
    "        u[j] = u_samples[resample_index]\n",
    "    mans.append(t)    \n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "375ab473",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f2891793100>]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [a[0] for a in mans]\n",
    "y = [a[1] for a in mans]\n",
    "fig3 = plt.figure(1)\n",
    "axes1 = fig3.subplots(1, 1)\n",
    "axes1.plot(x, y,label='parametric curve')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "8693d7e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f288f6c4df0>]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [a[2] for a in mans]\n",
    "y = [a[3] for a in mans]\n",
    "fig4 = plt.figure(1)\n",
    "axes1 = fig4.subplots(1, 1)\n",
    "axes1.plot(x, y,label='parametric curve')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "61923a6d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fe16fd8f",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "99900935",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "25968ed1",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
